package com.projetosi.web.server.sistema.interfaces;

import java.util.List;


/**
 * 
 * @author  Filipe Alencar, Felipe J. Cavalcanti, Rodrigo L. de Brito, Thiago Gon�alves, Victor Hugo Arcelino.
 *
 */
public interface IGenericDAO {
	/**
	 * A classe que implementar IGenericDAO deve implementar um metodo cadastrar(),que
	 * cadastra um objeto desde que seja do tipo IGenericObject, armazenando-o em um
	 * repositorio de dados.
	 * @param objeto O objeto a ser cadastrado.
	 * @throws Exception 
	 */
	public void cadastrar(IGenericObject objeto) throws Exception ;
	/**
	 * A classe que implementar IGenericDAO deve implementar um metodo alterar(),que
	 * altera um objeto desde que seja do tipo IGenericObject, e que ja esteja no
	 * repositorio de dados.
	 * @param objeto O objeto a ser alterado.
	 * @throws Exception 
	 */
	public void alterar(IGenericObject objeto) throws Exception ;
	/**
	 * A classe que implementar IGenericDAO deve implementar um metodo deletar(),que
	 * exclui o registro de um objeto do tipo IGenericObject, e que esteja no
	 * repositorio de dados.
	 * @param objeto O objeto a ser excluido.
	 * @throws Exception 
	 */
	public void deletar(IGenericObject objeto) throws Exception ;
	/**
	 * A classe que implementar IGenericDAO deve implementar um metodo pesquisar(),que
	 * pesquisa por um objeto do tipo IGenericObject, desde que esteja no
	 * repositorio de dados.
	 * @param objeto O objeto a ser pesquisado.
	 */
	public List<IGenericObject> pesquisar(String campo, String chave) throws Exception;
	/**
	 * A classe que implementar IGenericDAO deve implementar um metodo pesquisarTodos(),que
	 * pesquisa por todos os objetos do tipo IGenericObject, que estejam armazenados
	 * no repositorio de dados.
	 * @throws Exception 
	 *
	 */
	public List<IGenericObject> pesquisarTodos() throws Exception ;
}

